package com.shihb.akka.sparkmasrterwork.common

//------------------Mater发送的协议-------------
/**
 * 服务器返回的对象
 */
case object RegisterWorkerInfo
/**
 * 服务器发送给自己的检查worker心跳的协议,删除超时心跳
 */
case object RemoveTimeOutWorker
/**
 * 服务器发送给自己,触发检查超时worker的信息
 */
case object StartTimeOutWorker

//------------------Worker发送的协议-------------
/**
 * woker注册信息//MessageProtocol.scala
 */
case class RegisterWorkerInfo(id: String, cpu: Int, ram: Int)

/**
 * 这是WorkerInfo,这个信息将来保存在master的hashMap
 * 将来会扩展,比如增加worker的心跳
 */
class WorkerInfo {
  var id: String = _
  var cpu: Int = _
  var ram: Int = _
  var lastHeartBeat = System.currentTimeMillis();
  def this(id: String, cpu: Int, ram: Int) {
    this
    this.id = id
    this.cpu = cpu
    this.ram = ram
  }
}

object WorkerInfo {
  def apply(id: String, cpu: Int, ram: Int): WorkerInfo = new WorkerInfo(id, cpu, ram)
}



/**
 * 定时器发送给自己的一个消息
 */
case object SendHeartBeat

/**
 * 每隔一段时间定时触发而向master发送的心跳
 * @param id
 */
case class HeartBeat(id:String)

